package com.tanhua.server.exception;

import com.tanhua.model.vo.ErrorResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * @program: tanhua
 * @description:
 * @author: MR.peng
 * @create: 2022-03-09 17:52
 **/

    /*
    *统一异常处理:
    *       到controller出现异常时，SpringMVC会交给此类的指定方法来完成
    *
    * 1.声明异常处理器
    *   @ControllerAdvice
    * 2.定义一个异常处理的方法
    *
    * */



    @ControllerAdvice
public class ExceptionAdvice {
        /*
        * 异常处理方法：
        *   1.返回值与Controller返回值一致
        *   2.可以指定此方法处理的异常形式
        *
        * */

        @ExceptionHandler(Exception.class)
       public ResponseEntity handlerException(Exception e){
            e.printStackTrace();
            ErrorResult vo = ErrorResult.error();
            return ResponseEntity.status(500).body(vo);//指定相应数据

        }


        /*
        * 方法的参数：抛出的异常对象
        *
        * */
    @ExceptionHandler(BusinessException.class)
    public ResponseEntity handlerBusinessException(BusinessException e){
        e.printStackTrace();
        ErrorResult vo = e.getVo();
        return ResponseEntity.status(500).body(vo);//指定相应数据

    }
}
